const user = {
  name:'Jake'
}
const proxy = new Proxy(user,{
  get(target, property, receiver){
    console.log(target === user);
    console.log(receiver === proxy);
    console.log(`Getting ${property}`);
    return Reflect.get(...arguments)
  },
  set(target,property,value,receiver){
    console.log(target === user);
    console.log(receiver === proxy);
    console.log(`Setting ${property}=${value}`);
    return Reflect.set(...arguments)
  },
  has(target, property) { 
    console.log(`Has ${property}`);
    return Reflect.has(...arguments) 
  }
});
console.log(proxy.name);
proxy.age = 27;
console.log('age' in proxy);
// true
// true
// Getting name
// Jake
// true
// true
// Setting age=27
// Has age
// true